CDN
一詞的全名是 Content Delivery Network
,中文為「內容傳遞網路」,透過分散式節點,讓使用者能夠存取較近的節點,進而增加網站讀取速度。
有時候在逛網站時(特別是國外)會發現速度很慢,這是因為我們直接連線到國外的主機。而 CDN
能夠過分散式節點的方式,讓使用者能夠訪問其他節點,同樣能取得原本主機的資源。
特別是在取得靜態檔案時,常常會持續向伺服器發出請求,如果同時有很多請求,就會導致速度太慢而影響使用者體驗,當然 CDN
同時也具備緩存功能,加快資源的存取。
因為不是所有請求都連回原本的伺服器,經過設計的 CDN
同時也能預防惡意攻擊(如 DDOS),因為對方攻擊的目標是其他節點。
圖片取自 Muvi
我們來模擬一次開啟網頁後,如果使用 CDN
後會發生的事情:
在打開 https://www.google.com/
後,若瀏覽器沒有 DNS
緩存,則向 DNS
伺服器發出請求,之後 DNS 伺服器會將 CDN
的 IP
返回給使用者,接著使用者向這個 IP
發出請求。
隨後,CDN
的 DNS
全局負載均衡(GSLB)設備會根據 IP
及請求的網址,並且選擇一台附近的 GSLB 設備,並告訴使用者對這台設備發起請求。
接著 GSLB 設備在分析過後,會返回一台伺服器的 IP
位置,接著使用者就會向這台伺服器發起請求。
文末總結一下使用 CDN
帶來的好處: